package com.lighthouse.doc.operate.service;

import java.util.List;

import com.lighthouse.doc.base.domain.KnowledgeDocBaseInfoVo;
import com.lighthouse.doc.operate.domain.KnowledgeDocOperate;
import com.lighthouse.doc.operate.domain.KnowledgeDocOperateDTO;

/**
 * 用户-文档操作关联Service接口
 * 
 * @author ysz
 * @date 2023-04-26
 */
public interface IKnowledgeDocOperateService 
{
    /**
     * 查询用户-文档操作关联
     * 
     * @param docId 用户-文档操作关联主键
     * @return 用户-文档操作关联
     */
    public KnowledgeDocOperate selectKnowledgeDocOperateByDocAndUser(String docId);

    /**
     * 查询用户-文档操作关联列表
     * 
     * @param knowledgeDocOperate 用户-文档操作关联
     * @return 用户-文档操作关联集合
     */
    public List<KnowledgeDocOperate> selectKnowledgeDocOperateList(KnowledgeDocOperate knowledgeDocOperate);

    /**
     * 新增用户-文档操作关联
     * 
     * @param knowledgeDocOperate 用户-文档操作关联
     * @return 结果
     */
    public int insertKnowledgeDocOperate(KnowledgeDocOperateDTO knowledgeDocOperateDTO);

    /**
     * 修改用户-文档操作关联
     * 
     * @param knowledgeDocOperate 用户-文档操作关联
     * @return 结果
     */
    public int updateKnowledgeDocOperate(KnowledgeDocOperate knowledgeDocOperate);

    /**
     * 批量删除用户-文档操作关联
     * 
     * @param docIds 需要删除的用户-文档操作关联主键集合
     * @return 结果
     */
    public int deleteKnowledgeDocOperateByDocIds(String[] docIds);

    /**
     * 删除用户-文档操作关联信息
     * 
     * @param docId 用户-文档操作关联主键
     * @return 结果
     */
    public int deleteKnowledgeDocOperateByDocId(String docId);

    /**
     * 查询最近文档操作
     * @param noticer 用户id
     * @return 文档信息集合
     */
    public List<String> selectKnowledgeDocOperateRecent(Long noticer, String attentionType);

    /**
     * 查询任一有操作的文档记录
     * @param userId 用户id
     * @return 文档信息集合
     */
    public List<String> selectKnowledgeDocOperateAnyDone(Long userId);
}
